﻿''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Codigo de proyecto: 306 F
' Nombre proyecto: Framework Web LNK
' Nombre del módulo: FormBase
' Tarea/s relacionada/s: Master Pages
' Fecha creacion: 19/11/2009
' Autor/es original/es: Mauro Cristy mcristy@cdt-ar.com 
' Fecha modificacion: No Aplica
' Autor modificacion: No Aplica
' R02 relacionados: 06
' R03 relacionados: No Aplica
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Partial Public Class FormBase
    Inherits System.Web.UI.MasterPage

#Region "Propiedades"
    Private _ObjetoReglaNegocios As IClaseBase
    Public _lblTitulo As String

    ''' <summary>
    ''' Objeto de reglas del negocio encargado de la administración del formulario.
    ''' </summary>
    Private Property ObjetoReglaNegocios() As IClaseBase
        Get
            Return _ObjetoReglaNegocios
        End Get
        Set(ByVal value As IClaseBase)
            _ObjetoReglaNegocios = value
        End Set
    End Property

    ''' <summary>
    ''' Label con el título del formulario.
    ''' </summary>
    Public Property lblTitulo() As String
        Get
            Return _lblTitulo
        End Get
        Set(ByVal value As String)
            _lblTitulo = value
        End Set
    End Property

#End Region

    ''' <summary>
    ''' Carga la página y realiza toda la rutina de inicialización del formulario.
    ''' </summary>
    ''' <remarks>Se utiliza este método para inicializar las propiedades que determinan el funcionamiento del formulario, instanciar un objeto de negocios y ejecutar el método InicializarPagina para enlazar la página actual con el formulario base.</remarks>
    ''' <param name="sender">Objeto emisor del evento.</param>
    ''' <param name="e">Argumentos pasados por parámetro.</param>
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'Graba Log de acceso
        If Not Page.IsPostBack Then
            Dim parametros As New ArrayList
            parametros.Add(Common.Env.Operador)
            parametros.Add(ObjetoReglaNegocios.getNombrePrograma())
            parametros.Add(DBNull.Value)
            parametros.Add("I")
            parametros.Add(Common.Env.Terminal)
            parametros.Add("Ingreso a la pagina web")
            parametros.Add(DBNull.Value)
            Sql.ExecSP(ConnectionString, "wp_grabar_log", parametros)
        End If

        'Carga el nombre del programa para que despues lo levante la pagina de ayuda
        Session("Programa") = ObjetoReglaNegocios.getNombrePrograma()

    End Sub

    ''' <summary>
    ''' Evento principal de inicialización del formulario, al cual se le pasa como parámetro una instancia del objeto de reglas del negocio con el cual se lo decide enlazar.
    ''' </summary>
    ''' <remarks>Dicho objeto de reglas del negocio determinará el nivel de seguridad de la página y las validaciones que deberá pasar.</remarks>
    Public Sub InicializarPagina(ByVal obr As IClaseBase)
        'Titulo del ABM
        formTitulo.InnerHtml = lblTitulo

        'Objeto de regla de negocios
        ObjetoReglaNegocios = obr
        ObjetoReglaNegocios.setOperadorLogueado(Common.Env.Operador)

        If ObjetoReglaNegocios.getControlSeguridad(Common.TipoOperacion.Ejecucion) = False Then
            MsgBox("Error", MsgBoxStyle.OkOnly, "Error")
        End If
    End Sub

End Class